import { phone, code, pwd, email, card, number, userName } from "~/common/reg";
interface RegExpMap {
	// 手机号码
	phone: RegExp;
	// 六位数数字验证码
	code: RegExp;
	// 大写字母、小写字母、数字、特殊字符，至少由其中3种组成，长度必须在10至20位之间的密码
	pwd: RegExp;
	// 邮箱
	email: RegExp;
	// 身份证号
	card: RegExp;
	// 数字
	number: RegExp;
	// 1-10位由汉字或者字母组合的用户名
	userName: RegExp;
}

// 正则对象集合
export const regExpObj: RegExpMap = {
	phone,
	code,
	pwd,
	email,
	card,
	number,
	userName,
};

/**
 * 校验一个值是否满足对应正则检验结果，并返回对应的结果布尔值
 * @param value 校验值
 * @param type 校验正则类型，参照以上定义如果没有请自行补充
 */
export const checkValue = (value, type) => {
	try {
		return regExpObj[type].test(value);
	} catch {
		return false;
	}
};
